home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue27 / whoami / MAINFORM.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1997-08-16  |  2.1 KB  |  90 lines

  1. unit mainform;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls,
  7.   Forms, Dialogs, FileCtrl, StdCtrls, verinfo, Grids, Outline, DirOutln,
  8.   ComCtrls;
  9.  
  10. type
  11.   TMain = class(TForm)
  12.     lvVerINfo: TListView;
  13.     Memo1: TMemo;
  14.     Button1: TButton;
  15.     procedure FormDestroy(Sender: TObject);
  16.     procedure FormShow(Sender: TObject);
  17.     procedure FormCreate(Sender: TObject);
  18.     procedure Button1Click(Sender: TObject);
  19.   private
  20.     VerInfoRes: TVerInfoRes;
  21.   end;
  22.  
  23. var
  24.   Main: TMain;
  25.  
  26. implementation
  27.  
  28. {$R *.DFM}
  29.  
  30. procedure AddListViewItem(const aCaption, aValue: String; aData: Pointer;
  31.   aLV: TListView);
  32. // This method is used to add a TListItem to the TListView, aLV
  33. var
  34.   NewItem: TListItem;
  35. begin
  36.   NewItem := aLV.Items.Add;
  37.   NewItem.Caption := aCaption;
  38.   NewItem.Data := aData;
  39.   NewItem.SubItems.Add(aValue);
  40. end;
  41.  
  42. procedure TMain.FormCreate(Sender: TObject);
  43. begin
  44.   VerInfoRes := TVerInfoRes.Create(Application.ExeName);
  45. end;
  46.  
  47. procedure TMain.FormDestroy(Sender: TObject);
  48. begin
  49.   VerInfoRes.Free;
  50. end;
  51.  
  52. procedure TMain.FormShow(Sender: TObject);
  53. var
  54.   VerString: String;
  55.   i: integer;
  56.   sFFlags: String;
  57.  
  58. begin
  59.   for i := ord(viCompanyName) to ord(viComments) do begin
  60.     VerString := VerInfoRes.GetPreDefKeyString(TVerInfoType(i));
  61.     if VerString <> '' then
  62.       AddListViewItem(VerNameArray[TVerInfoType(i)], VerString, nil,
  63.         lvVerINfo);
  64.   end;
  65.   VerString := VerInfoRes.GetUserDefKeyString('Author');
  66.   if VerString <> EmptyStr then
  67.       AddListViewItem('Author', VerString, nil, lvVerINfo);
  68.       
  69.  
  70.   AddListViewItem('File Version', VerInfoRes.FileVersion, nil,
  71.     lvVerInfo);
  72.   AddListViewItem('Product Version', VerInfoRes.ProductVersion, nil,
  73.     lvVerInfo);
  74.   for i := 0 to VerInfoRes.FileFlags.Count - 1 do begin
  75.     if i <> 0 then
  76.       sFFlags := SFFlags+', ';
  77.     sFFlags := SFFlags+VerInfoRes.FileFlags[i];
  78.   end;
  79.   AddListViewItem('File Flags',SFFlags, nil, lvVerINfo);
  80.   AddListViewItem('Operating System', VerINfoRes.FileOS, nil, lvVerINfo);
  81.  
  82. end;
  83.  
  84. procedure TMain.Button1Click(Sender: TObject);
  85. begin
  86.   Close;
  87. end;
  88.  
  89. end.
  90.